#include <stdio.h>
#include <stdlib.h>
#include <signal.h> //信号处理
#include "signal_api.h"

// 信号处理函数
void my_handler(int signum)
{
    printf("Caught signal %d\n", signum);
    if (signum == 0)
    {
        return;
    }
    else if (signum == 2)
    {
        exit(0);
    }
    exit(signum); // 处理信号，比如退出程序或者进行资源清理
}

// 信号初始化函数
void signal_init()
{
    struct sigaction sa;
    sa.sa_handler = my_handler; // 设置信号处理函数
    sigemptyset(&sa.sa_mask);   // 清空信号掩码，确保没有阻塞其他信号
    sa.sa_flags = 0;            // 使用默认标志

    // 设置信号处理函数
    if (sigaction(SIGINT, &sa, NULL) == -1)
    {
        perror("sigaction");
        exit(1);
    }
}
